package org.yelongframework.excel.row;

import java.util.List;

import org.yelongframework.excel.cell.ExcelCell;
import org.yelongframework.excel.sheet.ExcelSheet;
import org.yelongframework.excel.workbook.ExcelWorkbook;

/**
 * Excel行
 * 
 * @since 1.0.0
 */
public interface ExcelRow {

	// ==================================================索引==================================================

	/**
	 * @return 获取该行表示的行号
	 */
	int getRowNum();

	// ==================================================单元格值==================================================

	/**
	 * 获取单元格字符串值
	 * 
	 * @param colIndex 列索引
	 * @return 单元格字符串值
	 */
	String getCellValueString(int colIndex);

	/**
	 * 获取单元格Integer字符串值
	 * 
	 * @param colIndex 列索引
	 * @return 单元格字符串值
	 */
	String getCellValueIntString(int colIndex);

	/**
	 * 获取单元格Integer字符串值
	 * 
	 * @param colIndex 列索引
	 * @return 单元格字符串值
	 */
	String getCellValueIntStringIf(int colIndex);

	// ==================================================单元格==================================================

	/**
	 * 获取单元格
	 * 
	 * @param colIndex 列索引
	 * @return 单元格
	 */
	ExcelCell getCell(int colIndex);

	/**
	 * 获取所有的单元格
	 * 
	 * @return 单元格集合
	 */
	List<ExcelCell> getCellList();

	// ==================================================所属的工作表==================================================

	/**
	 * @return 所属的工作表
	 */
	ExcelSheet getSheet();

	// ==================================================所属的工作薄==================================================

	/**
	 * @return 所属的工作薄
	 */
	ExcelWorkbook getWorkbook();

	// ==================================================行==================================================

	/**
	 * @return Excel行
	 */
	Object getRow();

}
